<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>数据类型的检测</title>
    <link rel='stylesheet' href='//cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/styles/default.min.css'>
    <script src='//cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/highlight.min.js'></script>
</head>
<body>
    <pre>
        <code>
        // 检测数据类型的几种方法
        /**
         * typeof [val] 检测数据类型的运算符
         * instanceof 用来检测当前实例是否是属于某个类
         * constructor 基于构造函数检测数据类型 基于类的方式
         * Object.prototype.toString.call() 检测数据类型的最好的方法
         * 
        */

        // typeof局限性 typeof null ==> “object” 但是null并不是一个对象 对于基本对象类型和数组对象都会返回的是object 所以无法判断对象类型
        console.log('typeof null',typeof null);
        let a = 1
        console.log('typeof a = 1',typeof a);
        let str = 'str'
        console.log('str',typeof str)
        console.log('undefined',typeof undefined);
        console.log('boolean',typeof true);
        console.log('{}',typeof {});
        console.log('[]',typeof []);
        </code>
    </pre>
    <script>hljs.highlightAll()</script>
    <script>
        // 检测数据类型的几种方法
        /**
         * typeof [val] 检测数据类型的运算符
         * instanceof 用来检测当前实例是否是属于某个类
         * constructor 基于构造函数检测数据类型 基于类的方式
         * Object.prototype.toString.call() 检测数据类型的最好的方法
         * 
        */

        // typeof局限性 typeof null ==> “object” 但是null并不是一个对象 对于基本对象类型和数组对象都会返回的是object 所以无法判断对象类型
        console.log('typeof null',typeof null);
        let a = 1
        console.log('typeof a = 1',typeof a);
        let str = 'str'
        console.log('str',typeof str)
        console.log('undefined',typeof undefined);
        console.log('boolean',typeof true);
        console.log('{}',typeof {});
        console.log('[]',typeof []);
    </script>
</body>
</html>